home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / role / DebugTool_111.lha / srccheck.c < prev    next >
C/C++ Source or Header  |  1992-10-29  |  2KB  |  60 lines

  1. #include "frobnitz.h"
  2.  
  3. /*******************************************************************/
  4. /*  Funktion: PerformCheck                                         */
  5. /*******************************************************************/
  6.  
  7. void
  8. PerformCheck (void)
  9. {
  10.   unsigned long check_length, file_length, count;
  11.   unsigned short summa = 0;
  12.  
  13.   printf ("FILE CHECK:\n\n");
  14.  
  15.   if (is_savefile)
  16.     {
  17.       error (8);
  18.     }
  19.   else if (!header.verify_length)
  20.     {
  21.       error (9);
  22.     }
  23.   else
  24.     {
  25.       fseek (DatFile, (unsigned long) 0, SEEK_END);
  26.       file_length = ftell (DatFile);
  27.  
  28.       check_length = header.verify_length * 2 * (header.z_version > 3 ? 2 : 1) * (header.z_version > 5 ? 2 : 1);
  29.  
  30.       if (check_length > file_length)
  31.     {
  32.       error (1);
  33.     }
  34.       else
  35.     {
  36.       printf ("Game length: %d\n", check_length);
  37.       printf ("Padding:     %d  ", file_length - check_length);
  38.  
  39.       if (((file_length / 512) * 512) == file_length)
  40.         printf ("(to page size%s)", (((file_length - check_length) > 255) ? " 512" : "s 256/512"));
  41.       else if (((file_length / 256) * 256) == file_length)
  42.         printf ("(to page size 256)");
  43.       else if (file_length == check_length)
  44.         printf ("(none)");
  45.       else
  46.         printf ("(accidentally?)");
  47.  
  48.       printf ("\n\n$Verify:     ");
  49.  
  50.       seek_pos ((z_word) 0x40);
  51.       for (count = 0x40; count < check_length; count++)
  52.         {
  53.           summa = summa + fgetc (DatFile);
  54.         }
  55.  
  56.       printf ("%s\n", (summa == header.verify_checksum) ? "Game correct" : "*** Failed ***");
  57.     }
  58.     }
  59. }
  60.